#ifndef _ELEMENT_
#define _ELEMENT_

#include "structure.hpp"

#include "noeud.hpp"
#include "arc.hpp"

typedef void* Elem;

// <editor-fold defaultstate="collapsed" desc="comment">
/*// INT
void initInt(Elem &e, const int i = 0);

void initInt(Elem &e1, const Elem e2);

void affectationInt(Elem &e1, const Elem e2);

void afficheInt(const Elem &e);

int compareInt(const Elem &e1, const Elem &e2);

void testamentInt(Elem &e);


//DOUBLE
void initDouble(Elem &e, const double i = 0.0);

void initDouble(Elem &e1, const Elem e2);

void affectationDouble(Elem &e1, const Elem e2);

void afficheDouble(const Elem &e);

int compareDouble(const Elem &e1, const Elem &e2);

void testamentDouble(Elem &e); // </editor-fold>
 */

// NOEUD
void initNoeudGenerique(Elem &e, const Noeud n, bool verbose = false);

void initNoeudGenerique(Elem &e1, const Elem e2, bool verbose = false);

void affectationNoeud(Elem &e1, const Elem e2);

int comparaisonNoeud(const Elem &e1, const Elem &e2);

void afficheNoeud(const Elem &e);

void testamentNoeudGenerique(Elem &e);

// ARC
void initArcGenerique(Elem &e, const Arc n, bool verbose = false);

void initArcGenerique(Elem &e1, const Elem e2, bool verbose = false);

void affectationArc(Elem &e1, const Elem e2);

int comparaisonArc(const Elem &e1, const Elem &e2);

void afficheArc(const Elem &e);

void testamentArc(Elem &e);

#endif
